import axios from "axios";
import router from "../router";

// 缺省页面
const errPage = [404, 500];

// 拦截请求
axios.interceptors.request.use((config) => {
    const token = localStorage.getItem("newtoken");
    if (token) {
        config.headers.authorization = `Bearer ${token}`;
    }
    return config;
});
// 拦截响应
axios.interceptors.response.use(
    (config) => {
        return {
            data: config.data.data || config.data.checkCode || config.data.token,
            code: config.data.code,
            msg: config.data.msg || "请求成功",
            total: config.data.total
        };
    },
    (err) => {
        // 拿到报错的网络响应号
        const { status } = err.response;
        // 报错提示

        // 判断缺省页是否存在 如果存在就跳转到对应的缺省页

        if (errPage.some((item) => item === status)) {
            router.push(`/${status}`).catch(err => { console.log(err) });
        } else {
            // 那不是404,和500报错的缺省页就统一跳到 404页面
            router.push("/404");
        }
    }
);

export default axios;